package pe.com.rimac.portal.service.paperless;

import pe.com.rimac.portal.common.exception.ServiceException;
import pe.com.rimac.portal.service.paperless.model.PaperlessRequest;
import pe.com.rimac.portal.service.paperless.model.TipoRetorno;

/**
 * Interfase que representa al servicio Paperless encargado de obtener las facturas en formato digital (XML y PDF)
 * 
 * @author Synopsis S.A
 * 
 */
public interface PaperlessService
{
	/**
	 * Obtiene la URL donde se encuentra la factura electr&oacute;nica solicitada en el formato indicado.
	 * 
	 * @param request
	 *            datos de la factura electr&oacute;nica
	 * @param tipoRetorno
	 *            tipo de retorno. PDF o XML
	 * @param username
	 *            usuario autorizado para realizar consultas a paperless.
	 * @param password
	 *            contrase&ntilde;a del usuario autorizado para realizar consultas a paperless.
	 * @return
	 * @throws ServiceException
	 */
	String obtenerURLFactura(PaperlessRequest request, TipoRetorno tipoRetorno, String username, String password)
			throws ServiceException;
}